﻿using System;

namespace uoLib.Authentication
{
    /// <summary>
    /// 使用二进制位的权限标识
    /// </summary>
    /// <remarks>
    /// 每一个枚举项表示一个权限标识。它的二进制字符串中为“1”这一位即表示它的权限。
    /// 对于一个二进制字符串“10001000001”，每一位独立地表示一个权限，也即独立地对应一个枚举项。
    /// 如 “10001000001”中，表示有3个可用权限：
    /// （二进制）10000000000   -> （十进制）1024 -> PowerItemExample.划归设备
    /// （二进制）00001000000   -> （十进制）64   -> PowerItemExample.增改设备
    /// （二进制）00000000001   -> （十进制）1    -> PowerItemExample.查看用户
    /// 请注意：枚举项的值，必须为2的整倍数，否则转化为二进制后则无法独立地只以一位来表示。
    /// </remarks>
    [Flags]
    public enum PowerItemExample :long
    {
        //用户管理
        查看用户 = 1,
        增改用户 = 2,
        删除用户 = 4,
        //8
        //16

        //设备管理
        查看设备 = 32,
        增改设备 = 64,
        删除设备 = 128,
        //256
        //512

        //业务管理
        划归设备 = 1024,
        设置手机视频 = 2048,
        查看存储计划 = 4096,
        管理存储计划 = 8192,
        仅管理自己所在区域的信息 = 16384,

        //系统网管
        管理流媒体服务器 = 32768,
        设置报警参数 = 65536,
        查看状态报告 = 131072,
        //262144
        //524288

        //基础数据        
        管理区域 = 1048576,
        //2097152
        //4194304

        //系统管理
        查看系统日志 = 8388608,
        管理其他管理员 = 16777216,
        备份恢复数据库 = 33554432,
    }
}
